草庐IT

MyBatis 动态SQL

全部标签

c# - 动态添加新的 lambda 表达式以创建过滤器

我需要对ObjectSet进行一些过滤以获得我需要的实体:query=this.ObjectSet.Where(x=>x.TypeId==3);//thisisjustanexample;在代码的后面(在启动延迟执行之前)我再次像这样过滤查询:query=query.Where();到目前为止效果很好。这是我的问题:实体包含一个DateFrom属性和一个DateTo属性,它们都是DataTime类型。它们代表一个时间段。我需要过滤实体以仅获取属于时间段的集合的实体。集合中的句点不一定是连续的,因此,检索实体的逻辑如下所示:entities.Where(x=>x.DateFrom>=Pe

c# - SQL Server transient 异常编号

我想为我的数据库调用编写一些包装代码(使用C#和Microsoft技术来访问数据库),在出现“transient”异常时自动重试。我所说的暂时性是指最终很有可能会解决的事情(相对于永远不会起作用的逻辑错误)。我能想到的例子包括:僵局连接超时命令超时我曾计划使用SqlException的错误编号来发现这些错误。例如:ListresultSet=null;intlimit=3;for(inti=0;i(如有任何错误,请原谅-我只是临时写的。我也意识到我可以很好地把它包起来......)所以关键问题是:我应该将哪些数字视为“transient”(我意识到我认为的transient可能与其他人

c# - P/Invoke 到 Mono 上动态加载的库

我正在编写一个使用一些非托管代码的跨平台.NET库。在我的类的静态构造函数中,检测到平台并从嵌入式资源中提取适当的非托管库并保存到临时目录,类似于anotherstackoverflowanswer中给出的代码。.为了在库不在PATH中时可以找到它,我在将它保存到临时文件后显式加载它。在Windows上,这适用于来自kernel32.dll的LoadLibrary。我正尝试在Linux上对dlopen执行相同的操作,但在稍后加载P/Invoke方法时出现了DllNotFoundException。我已验证库“libindexfile.so”已成功保存到临时目录,并且对dlopen的调用

c# - 将动态表达式传递给代码优先 EF 存储库中的排序依据

我们编写了一个通用函数,以存储库模式首先从EF代码中获取记录。休息似乎没问题,但是当将整数传递给动态订单时,它说CannotcastSystem.Int32toSystem.Object表达式如下:Expression>orderByFunc=o=>o.Id;if(options.sort=="Id"){//thisisanIntegerorderByFunc=o=>o.Id;}if(options.sort=="Name"){//stringorderByFunc=o=>o.Name;}if(options.sort=="Code"){orderByFunc=o=>o.Code;}泛

c# - Linq To SQL 和 Having

我是LinqToSQL的新手,但我试图运行一个应该相当简单的SQL查询,但无法弄清楚如何让它在LINQ中发挥良好的作用。SELECTUsers.Id,Users.IdASExpr1,Users.FirstName,Users.LastName,User_x_Territory.UserIDFROMUsersLEFTOUTERJOINUser_x_TerritoryONUser_x_Territory.UserID=Users.IdGROUPBYUsers.Id,Users.Id,Users.FirstName,Users.LastName,User_x_Territory.UserID

c# - 如何使用代码生成动态创建C#方法?

为了在C中定义一个可由Lua调用的方法,它必须匹配给定的签名并使用LuaAPI来检索参数并返回结果。我正在编写Lua的C#包装器,我对能够调用任意C#方法而不使它们遵循这些约定感兴趣。当用D之类的东西包装时,可以使用模板系统为任何给定方法动态创建此胶水代码。我当时认为这在C#中也可能实现,但需要使用动态代码生成。CAPI看起来像这样,生成的代码将通过我的库的较低级别部分来操作它,它P/InvokesLuaC库。staticintfoo(lua_State*L){intn=lua_gettop(L);/*numberofarguments*/lua_Numbersum=0;inti;fo

c# - 如何使用反射在泛型类型中动态确定属性属于基类还是子类?

我有以下两个类(模型),一个是基类,另一个是子类:publicclassBaseClass{publicstringBaseProperty{get;set;}}publicclassChildClass:BaseClass{publicstringChildProperty{get;set;}}在应用程序中,我使用泛型动态调用ChildClassListpropertyNames=newList();foreach(PropertyInfoinfointypeof(T).GetProperties()){propertyNames.Add(info.Name);}在这里,在prope

c# - 如何从 SQL Server 内存中清除 SqlDependency?

如何清理SQLServer以摆脱过期的SqlDependency对象?在我从SqlDepedency对象接收到事件后,我需要先创建一个新事件,然后才能获取新事件。但是,SQLServer进程的内存使用量会攀升,直到用完允许的内存(SQLServerExpress)。如何摆脱旧查询?代码://Func:RegisterTableListenerusing(SqlConnectioncn=newSqlConnection(Properties.Settings.Default.DatabseEventConnectionString)){if(cmd==null){cmd=cn.Creat

c# - 复选框和模型绑定(bind)的动态列表

我正在尝试创建一个View,其中包含一个从数据库动态创建的复选框列表,然后在回发表单时检索所选复选框的列表。我的EF模型包含一个类:publicclassItemIWouldLikeACheckboxFor{publicintId{get;set;}publicstringDescription{get;set;}}我有一个包含以下列表的View模型:publicclassPageViewModel{//variousotherpropertiespublicListcheckboxList{get;set;}}我的Controller获取方法:publicActionResultCr

c# - 有没有一种简单的方法可以使 EntityFramework 使用 SQL 默认值?

例如,我的大多数实体都有DateCreated和DateModified字段。在SQLServer中,它们的默认设置为GetUtcDate()。如果我尝试创建一个实体但不设置这些值,我会收到一个异常,提示它无法运行SQL插入,因为日期值超出范围。这是有道理的,因为C#默认日期是1/1/0001,而SQLServer的最小日期是1/1/1753。那么有没有一种方法可以告诉EF使用SQLServer默认值,或者不要尝试插入尚未设置的列? 最佳答案 您必须将这些属性的StoreGeneratedPattern设置为Identity(对于D